#ifndef	_MH_TYPE_LIGHT_HPP_
#define	_MH_TYPE_LIGHT_HPP_

#include <mh/types.hpp>
#include <mh/math.hpp>
#include <mh/util.hpp>

namespace Mh
{
	/*!
	 *	광원 클래스(구조체?)
	 *	차후에 장면 노드와 관련될지도...
	 */
	class Light
	{
	public:
		enum Type
		{
			TYPE_POINT,
			TYPE_DIRECTIONAL,
			TYPE_SPOTLIGHT,
		};

	protected:
		Light( Type type );
		virtual ~Light();

	public:
		Type	type() const	{ return m_type; }

	private:
		Type		m_type;		
	};

	/*
	 *	점 광원
	 */
	class PointLight : public Light
	{
	public:
		PointLight();
		virtual ~PointLight();

	};

	/*
	 *	방향성 광원
	 */
	class DirectionalLight : public Light
	{
	public:
		DirectionalLight();
		virtual ~DirectionalLight();

	private:
	};

	/*
	 *	스포트라이트
	 */
	class SpotLight : public Light
	{
	public:
		SpotLight();
		virtual ~SpotLight();

	private:
	};

	/*
	 *	광원 관리자
	 */
	class LightManager : public Singleton<LightManager>
	{
	public:
		LightManager();
		~LightManager();


	};


}		// namespace Mh

#endif	/* _MH_TYPE_LIGHT_HPP_ */